{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "# Ignore numpy dtype warnings. These warnings are caused by an interaction\n",
    "# between numpy and Cython and can be safely ignored.\n",
    "# Reference: https://stackoverflow.com/a/40846742\n",
    "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n",
    "warnings.filterwarnings(\"ignore\", message=\"numpy.ufunc size changed\")\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "import ipywidgets as widgets\n",
    "from ipywidgets import interact, interactive, fixed, interact_manual\n",
    "import nbinteract as nbi\n",
    "\n",
    "sns.set()\n",
    "sns.set_context('talk')\n",
    "np.set_printoptions(threshold=20, precision=2, suppress=True)\n",
    "pd.options.display.max_rows = 7\n",
    "pd.options.display.max_columns = 8\n",
    "pd.set_option('precision', 2)\n",
    "# This option stops scientific notation for pandas\n",
    "# pd.set_option('display.float_format', '{:.2f}'.format)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [],
   "source": [
    "def df_interact(df, nrows=7, ncols=7):\n",
    "    '''\n",
    "    Outputs sliders that show rows and columns of df\n",
    "    '''\n",
    "    def peek(row=0, col=0):\n",
    "        return df.iloc[row:row + nrows, col:col + ncols]\n",
    "    if len(df.columns) <= ncols:\n",
    "        interact(peek, row=(0, len(df) - nrows, nrows), col=fixed(0))\n",
    "    else:\n",
    "        interact(peek,\n",
    "                 row=(0, len(df) - nrows, nrows),\n",
    "                 col=(0, len(df.columns) - ncols))\n",
    "    print('({} rows, {} columns) total'.format(df.shape[0], df.shape[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true,
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [],
   "source": [
    "times = pd.read_csv('ilec.csv')['17.5']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Studentized Bootstrap\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The **bootstrap** is a process we learned about in Data 8 that we can use for estimating a population statistic using only one sample. The general procedure for bootstrapping is as follows:\n",
    "- Draw a sizable sample from the population.\n",
    "- Using this sample, we *resample with replacement* to form new samples of the same size.\n",
    "- We do this many times, taking the desired statistic of each resample (e.g. we take the median of each resample).\n",
    "\n",
    "Here, we end up with many test statistics from individual resamples, from which we can form a distribution. In Data 8, we were taught to form a 95% confidence interval by taking the 2.5th percentile and the 97.5th percentile of the bootstrap statistics. This method of bootstrapping to create a confidence interval is called the **percentile bootstrap.** 95% confidence implies that if we take a new sample from the population and construct a confidence interval, the confidence interval will contain the population parameter with probability 0.95. However, it is important to note that confidence intervals created from real data can only approximate 95% confidence. The percentile bootstrap in particular has lower confidence than desired at small sample sizes.\n",
    "\n",
    "Below, we've taken a population and created one thousand bootstrap 95% confidence intervals for the population mean for different sample sizes. The y-axis represents the fraction of the one thousand confidence intervals that contained the real population mean. Notice that at sample sizes below 20, fewer than 90% of the confidence intervals actually contain the population mean."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "scrolled": true
   },
   "source": [
    "![hyp_studentized_coverage.png](hyp_studentized_coverage.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can measure *coverage error* by calculating the difference between our measured confidence here and our desired 95% confidence. We can see that the coverage error for percentile bootstrap is very high at small sample sizes. In this chapter, we will introduce a new bootstrap method, called the **studentized bootstrap** method, that has a lower coverage error but requires more computation."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Repair Times\n",
    "\n",
    "The New York Public Utilities Commission monitors the response time for repairing land-line phone service in the state. These repair times may differ over the year and according to the type of repair. We have a census of repair times for one class of repairs at one time period for a specific *Incumbent Local Exchange Carrier*, which is a telephone company which held the regional monopoly on landline service before the market was opened to competitive local exchange carriers, or the corporate successor of such a firm. The commission is interested in estimates of the average repair time. First, let's look at a distribution of all of the times."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEhCAYAAABGC2bVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYHEW9//H37AIBEnDZRCMXFfB3/HBRFEU9ICLBAwpoEEUxIgIiGJGLCAiC3MQAIiigQoIaVDAgolwVELkJaILoATSEr9zEyw+SkCVAEi4hu+eP6gmTYXa3d2Z6Nrv7eT3PPrNTXd1TU9s736nq6qpST08PZmZmRWkb7AKYmdnw5kBjZmaFcqAxM7NCOdCYmVmhHGjMzKxQDjTWMpJKI+l1zSxZZbALYCsPSbcC76tIeglYANwGnBQRcyry/hjYJCL+O+exTwb+AVzYR57lx5S0IfAosHNEXD+Q91F1zDcDZwC7ZM/3zcqwRkQ8X+9xm0HSROC7wGuA4yLi21XbtwduqbHrs8ADwKkRcWXR5awq04YM8O+S/V336SfbBGBDVpK/jTWXA41V+x1wfPb7asAGwJeBuyRtGxH3ZttOAVYfwHFPAL7QT56BHjOPPYC3Vzz/NbA18EKTX6ce3wT+A3wGeKiPfJ8EHst+LwHrAocCl0t6V0T8pdBSruhxUv3N6S9jhVOAqRXPfw1cAfywIu1+YDYrz9/GmsiBxqotiIiZlQmSrgT+TPqw2BogIh5u9gsXccwarzEfmF/06+TUAVwWEbf1k+/eiHigMkHSb4EngUlAywJNRLwAzOw344r7PAws/9tKWgr8u/o8y6wsfxtrIgca61dELJH0LeBHkjaNiDnVXWeSPgR8HdgUeAq4HDg6Ip6TVJ5+4nxJn4yI7SX9A/gZsDOwCXAg8D+8sjtuU0knkFol9wNHRcRN2WueBEyOiNeWM0v6IHAdsBGwL3Bilt5Dje4ZSW3AZOCLwMak7r0zIuLCbL8NSV1FuwJHANsA80jdVtN6qzNJqwHHAHuTWoVzgBMi4tqKYwKcIOmEiBjodaQXqPrmL+lVwLeAjwJrADcBh0TEY9n2k4APARcAJwGjgd8AX4yIrizPKFKd7Qm8Dnia1AI5NCKeqe46y86DNYF20t/ypxExeYDvpVz+fVnxb/MP4FzgbcDuwGJgCi+3hrYjBbDPR8QfKo6zH3A06Rx4GDgxIn5Rsb3Xc7Weclv/PBjA8rope3zFNRlJ/4/0z3or6cPmeGA/0ocZZK0g0rWSgyp2PRK4CNiL2tciIHUv3UL6oPkX8BtJm+cs8w+BHwFdWRlqffM/AzgbuBTYDbgBmC7poKp8F5LqYFfgTmCqpM36eO0ZpPf33azss4Grsw+5cvdTV1a+rXs7SKZd0irZz2qSNgLOB8aQ6p0sYF5Luhb1ZVKdrgvcImlMxbHeRPq7HEUKrjsAv6rYfjawP+mDeKesfj5F+uDuze7AM6T6+3E/72WgTiJdk9qNdB6cA9yY/f4RUoD7aTmzpANJf/ergYnAb4GfS/pwtr2/c9UK4BaN5TUve3xNjW1bAaOAb0XE48Ctkl4AVgWIiJmSAB6NiPsr9rs7Ir5TfpLlqTY9Io7Ltt8IPEK6PvH5/gocEf+W9G9gabmbpvI1JI3LjnVyREzJkn8raS3g65IuqDjchRFxarbfLODjpA+qyvdTPu5bgY8Bn46In2XJ10taD/hGRFwLzOynC6nS33pJ2z0iZmXPPwhsC2xd8V5vBf4JfI4UQADWAiZGxK1ZnqeAa7NrPXcB44DDI2JGlv9WSdtmx+7LQQW1CP4eEV/Myvow6XrVnRHxzSxtCnCxpHVIra+vAz+IiK9k+98gaSzpOtE19HOuWjEcaKwZ7iJ148ySNIP0bXJGRHT3s1/kOPYVyzNHvCTpBuA9dZd0Re8mfcD8oir958BnSV16i7K08gc6EbE4+4Ae3ctxtwV6yFobVcedJmmtiHh2AOXcgzQYYAzwNUDAXhFxX0We95FaSHdLKv9fLyJdT5nAy4FmbjnIZH4DLCXV6V0R8XEASa8jvf83A5uRrgf15l8FdjvNqvh9bvZY2TJdkD2+CngtMJ4U1Cs/264HPi2pk/rPVWuAu84sr3Wzx8erN0TEI6TrK7OBw0ldS49I2qWfY87rZ3utPE+SPlSaYZ3scW5Vevk1165Iq/4g7ab3/591gKezC+e1jrvWQAoJzI6Iu7MA8SHSN/frshZZ2VigkxQ0Kn925OW/HVT9/SKih/RhvQ6ApG0lzSa1hC4FPgAsIY12602ev2O9agXkJb3kHZs9XsGKdXBxlv7aBs5Va4ADjeVVvr/mD7U2RsQdEbEz6Z99D9K360uzi8uN6Kh6/hpeHpnUQ+qjrzSG/J7KHsdXpZefdw3gWNXHfVWN9z6+YntdsvtLJgPrka5flS0kDWR4Z42ffSvydVYeL7u2Mw6Ynw0muAb4K7BhRIyNiA+S7tkZChZmj/tRux4ehULPVeuFA431K/sHPAL4fUS84n4PSXtLekTSqhGxKCJ+SfoQXIuXWwX1dk3sWFWOXYDbs6RFwDqSKruwqq8lLOvj2HeRvvF+vCr9E6SW04P1FJj0LblE+hCrPu49jXYzRcQdwGXAvpK2yJL/QAo+87LWz92kIelHUFGHwOuym1jLdiV1of+e1FXWAXy7YqTaGqRutaHwWfEAKWi8tlwHWT1sAXwV6M55rlqT+RqNVRsrqTyybFXScOBDSEN09+xlnztJ/eOXSppKunbxNdJF23LrYyGwvaQ/Vtz0mcdBkuaRPkQOJw2lLd9BfwNwJnCBpB+Shh5/smr/hUCnpF2pao1FxHxJ3wdOzL7ZzyRd4N8P+FJELOtlgEKfIuKe7N6j87ML0UEauTWBNPS4GY4ljfb6Fql76xpSd9D1kk4htfoOyF7v/Kp9fynpq6QP1zOAKyPiXkkdpOD9dUlnkroojyQFsKebVO7CZNfwTgW+IWlV4A7grcCpwMUR8YKkPOeqNdlQ+JZirfU/wB+znxtJwz7/DrwrImbX2iHr954IrE8aKnshaVRU5Tf6U0jfni9+xQH6dhjpzvmrSN84dyh/246Iv5FGn72HdFF7O+DTVfv/nPQB/CvSB3K1I4CTSSOzriF9+/9sRJw7wHJW+xTwA9I36StJ92xMbNaUMdlNkFOBnSTtGBFLScORZwHfI9XXG4APR8TvK3adRxoYMJUUsC/PykpELCS17tYn1cW3gXtJXzTelF1MX6lFxFmk4d2fJg0C+BJwFmkod95z1Zqs5KWczUaGWje4mrWCWzRmZlYoBxozMyuUu87MzKxQbtGYmVmhHGjMzKxQI+4+mvnzn62rr7BUKjF27GgWLFiMuxsHxnXXGNdf/Vx39ausu3HjxjS0HLpbNDm1taWKb3ONDZjrrjGuv/q57urXzLpz9ZuZWaEcaMzMrFAONGZmVigHGjMzK5QDjZmZFcqBxszMCtXS+2gkbQlMAzYnLSo1OSJm1sg3CZhCWpHwFmD/iJibbdsGOBd4E2lZ2pMjYkZr3oGZmQ1Uy1o0klYnrXFxIWkVv3OBqyWNqcq3BWmtjEmkJWafyPZBUjtpbY/TI2Jt0hoiP5G0YYvehpmZDVArWzQTgO6IKK/2N13S4aSleS+ryLcXcFVEzAKQdDRpPfPxwEvAq4FVJJVIywO/SN/L9ZqZ2SBqZaDZBLi/Ki2y9Op8f1yeIWKBpC5AEfF7SecBl5BWamwjdav9K28h6r3Tta2txIePuGrgO2Z+ctz76953qGtrK63waAPj+quf665+zay7Vgaa0cCSqrQlpDXgc+XL1nVfQlpu9mrSsrszJP0l7zr0Y8eOplRq/UnX2Tmm/0zDXEfH6MEuwpDm+quf665+zai7VgaaJcAaVWlrAosGkO+jwLsj4qgs/deSriWtKX9EnkIsWLC47hZNI7q6qt/myNHWVqKjYzQLFy6mu9sTGw6U669+rrv6VdZdo8GmlYFmDnBwVZqA6hFjc7L0lEEaB3Rm6e8CRlXlfyn7yaWnp4dlg3BFZ9kyn+Td3T2uhwa4/urnuqtfMwJ0KwPNzcAoSYeQRpXtTRq+fENVvkuA2yRNB+4GTgOuy67V3AicJmk/4MfAdsDuwA6teQtmZjZQLRveHBEvADuThi13AYcAEyNisaSpkqZm+e4BDgCmA/OA9YD9sm1/BfYADgOeBr4P7BMRd7fqfZiZ2cC09IbNiLgP2KZG+uSq55ex4pDnym3XkO7HMTOzIcBT0JiZWaEcaMzMrFAONGZmVigHGjMzK5QDjZmZFcqBxszMCuVAY2ZmhXKgMTOzQjnQmJlZoRxozMysUA40ZmZWKAcaMzMrlAONmZkVyoHGzMwK5UBjZmaFcqAxM7NCOdCYmVmhHGjMzKxQDjRmZlYoBxozMyuUA42ZmRXKgcbMzArlQGNmZoVyoDEzs0I50JiZWaEcaMzMrFAONGZmVigHGjMzK5QDjZmZFSpXoJF0lqSNiy6MmZkNP3lbNPsDPUUWxMzMhqdVcub7EXC6pNOAR4HnKjdGxIvNLpiZmQ0PeQPNp4DxwB69bG9vTnHMzGy4yRtoPlloKczMbNjKFWgi4raiC2JmZsNTrkAj6VH6GAwQER6RZmZmNeXtOju9xn5vBPYCjm9qiczMbFjJ23U2rVa6pDuBg4ALmlkoMzMbPhqdGeB/ga2bURAzMxue8l6jeVON5LWBo4CHm1oiMzMbVvJeo3mANBigVJX+L2DfZhbIzMyGl7yBZqOq5z3Ai8DciMg9NY2kLYFpwObAg8DkiJhZI98kYArpJtFbgP0jYm62bQNgKrAd8AxwRkScm7cMZmbWWrmu0UTEYxHxGLAW8G7gPcC6AwwyqwPXABcCHcC5wNWSxlTl24IUSCYB44Ansn2QVAKuBOYAY4EPACdJ2iZvOczMrLXyXqPpAC4CdgWeIk05s3Y26uxDEfF0jsNMALoj4vzs+XRJhwO7AJdV5NsLuCoiZmWvfTQwX9J4UstqPeCYiFgGzJa0NfBknvdhZmatl7fr7BzSB/xmEfEAgKTNgZ8C3wIOzHGMTYD7q9IiS6/O98flGSIWSOoCBLwZmA2cIWkvUtfZlIj4Sc73QalUoq2OsXZtbdWXpwamvb2x/Yeyct01Wocjleuvfq67+jWz7vIGmonAB8tBBiAiZkv6InAt+QLNaGBJVdoSYM0B5OsktYxuBl4PbAVcL+mRiLg9zxsZO3Y0pVLrT7rOzjH9ZxrmOjpGD3YRhjTXX/1cd/VrRt3lDTRLqVoaIPMcsFrOYywB1qhKWxNYNIB8LwBdEXFalv4HSb8EdgNyBZoFCxYPSoumq6v6bY4cbW0lOjpGs3DhYrq7vazRQLn+6ue6q19l3TUabPIGmhuBMyV9MiK6ACSNA84AfpfzGHOAg6vSBMyokU/LM6TX6czSO4FVJLVn12ggXS/KHQV6enpYtqz/fM22bJlP8u7uHtdDA1x/9XPd1a8ZATpvoDmC1F3172yCTUgX5u8HPpvzGDcDoyQdQhpVtjdp+PINVfkuAW6TNB24GzgNuC67VnMjqcVzoqSvA+8Cdgd2zFkGMzNrsbzDm58AtgD2BH5MChS7Ae+MiP/kPMYLwM6kYctdwCHAxIhYLGmqpKlZvnuAA4DpwDzSIIT9sm3PAduTAsw8Umvo0Fr34piZ2cqh1NMzspqT8+c/W9cbbm8vsc+Um+p+3enH7FD3vkNde3uJzs4xdHUtcvdFHVx/9XPd1a+y7jo7xzR0kbrXrrP+1qCp5PVozMysN31do6leg6YEfIc0Ncz8wkpkZmbDSq+BptYaNJK+BcyIiEcKLZWZmQ0bja5HY2Zm1icHGjMzK5QDjZmZFaqvUWe1VtUE2EjSCvtFxN+bWiozMxs2+hp11tuqmjdmj+VtPaRpYMzMzF6hr0BTvaqmmZnZgPU1vPmxVhbEzMyGJw8GMDOzQjnQmJlZoRxozMysULkCjaTLJKn/nGZmZivK26J5P/BSkQUxM7PhKe8Km98Gpkv6DvAo8FzlRt+waWZmvckbaE7JHt9bkeYbNs3MrF95A41v3jQzs7rkukYTEY9lN3CuD+wAdAFjgMd9Y6eZmfUl76izV0uaCdwC/AB4NXAacL8kL+NsZma9yjvq7GzgCWAsLw8E2Ad4CDingHKZmdkwkTfQ7Ah8LSIWlRMi4ingCFYcIGBmZraCvIFmFWqPLHsVvr/GzMz6kDfQXAF8U9I40nDmHkmbAd8DriqqcGZmNvTlDTRfAp4B5pJGm/0N+CvwT+DwYopmZmbDQa77aCLiWeAT2QizTbP95nhGADMz60/u2ZsljQLelv1sCmwsyTMCmJlZn/LeR7MZ8CDwE2B3YE/gcuBeSRsUVzwzMxvq8rZozgdmAutHxFYRsSWwASn4nF9U4czMbOjLG2i2Ak6IiGfKCRGxEDgOmFBEwczMbHjIG2hmA9vUSN8M8IAAMzPrVd7Zm2cAZ0vaCriDdJPmlsBBpHVqDixnjIgLml5KMzMbsvIGmsOABcDO2U9ZF/CR7AfSzZwONGZmtlze+2i8Ho2ZmdUl9300ZmZm9XCgMTOzQjnQmJlZoRxozMysUHlHnZHNa/Y6YFWgVLnNk2uamVlvcgUaSTsDPwLGZ0kl0lDm8qMn1zQzs5rytmjOBu4Evk5al8bMzCyXvIHm9cAHI+LRRl5M0pbANGBz0oSckyNiZo18k4AppBbULcD+ETG3Ks940uJrn42Iaxspl5mZFSfvYIBZwDsaeSFJqwPXABcCHcC5wNWSxlTl2wKYCkwCxgFPZPtU+xEwtpEymZlZ8fK2aC4Hpkl6L6kl8mLlxpzzm00AuiOivKzAdEmHA7sAl1Xk2wu4KiJmAUg6GpgvaXy5VSNpMrAY+FfO8puZ2SDJG2iOIF2bmVhjW975zTYB7q9Kiyy9Ot8fl2eIWCCpCxAwV9KbsvK8G/hLrtKbmdmgaeVcZ6OBJVVpS4A18+aTtApwEXBoRHRJGnAhSqUSbXXcPdTWVuo/Ux/a2xvbfygr112jdThSuf7q57qrXzPrbiD30ZSAXUlr0LQDDwDXRcTzOQ+xBFijKm1NYNEA8h0P3BMR1+Utd7WxY0dTKrX+pOvsHNN/pmGuo2P0YBdhSHP91c91V79m1F3e+2heB1wLvJHU3dUO/BfwH0kTIuI/OQ4zBzi4+tCktW6q8y1vqkgaB3Rm6T8E1pW0Z7Z5beBSSd+IiNPzvJcFCxYPSoumq6s6no4cbW0lOjpGs3DhYrq7ewa7OEOO669+rrv6VdZdo8Emb4vmu6TRXxMioguWB4AZwHeAT+Q4xs3AKEmHkEaV7U0avnxDVb5LgNskTQfuBk4jtZwWUHU9R9I/gIMHMry5p6eHZcvy5m6eZct8knd397geGuD6q5/rrn7NCNB5v9u/HziyHGQAIuJJ4ChgpzwHiIgXSIumTSItmHYIMDEiFkuaKmlqlu8e4ABgOjAPWA/YL2c5zcxsJZO3RfMMr7xoT5bWnffFIuI+YJsa6ZOrnl/GikOeezvehnlf28zMBkfeFs0VwHmSNi8nSHoL8D3gqiIKZmZmw0PeFs1XgV8Bf5VUHnq8BnA18KUiCmZmZsND3vtongV2lPRmYFPgeeCBiHiwyMKZmdnQ12ugye7AfzAierLfIU09c2/2e6mc7vVozMysN321aB4AXksa+fUAaaqZal6PxszM+tRXoNkIeLLidzMzswHrNdBExGMVT08EDsuu1SwnaR3SdP0fLaZ4ZmY21PV1jWY7Xr4Tfx9gtqRnq7JtQrqZ08zMrKa+us4WAseQrsOUgMOAyslbekgTXR5VWOnMzGzI66vr7D5gYwBJdwE7RcTCVhXMzMyGh7wzA3QCGxZYDjMzG6byBprVqD282czMrE95p6CZAdwo6RLgEeC5yo0RkWcpZzMzG4HyBpo9gcXAxBrbegAHGjMzqynvXGe+YdPMzOqSt0WDpDHAvsBmpClnHgB+FhHziimamZkNB7kGA2SzNv8d+App+eXxwBHA/ZI2K654ZmY21OVt0ZwD/A7YPyKWAkhajTT9zLeBDxZTPDMzG+ryDm/eGji1HGQAIuJF4DTgPUUUzMzMhoe8gWYesH6N9PWAJTXSzczMgPxdZxcBF0g6FLgrS/tv4GzgZ0UUzMzMhoe8geYU0iJoV5JaQSVgKXAeaeJNMzOzmvLeR/MicICkI4E3Ac8DD0eEu83MzKxPA7mPZjywF7ApabmAeyRdEhFPF1U4MzMb+vLeR7Mt8CBwMLAO6T6aY4C/S9q8uOKZmdlQl7dFczbwY+BLEdENIKkd+D7pOs37CimdmZkNeXmHN28GfK8cZAAiYhnpZs2tiiiYmZkND3kDzZ3A7jXS3wfMal5xzMxsuMnbdfYH4CRJ2wO3Ay8BWwIfA2ZIOrWcMSKObXYhzcxs6MobaLYDZgKrAztWpN8JvCH7Aa/CaWZmVfLeRzOh6IKYmdnw1Oh6NDMiYm4xRTMzs+Gg0fVoZns9GjMz64vXozEzs0J5PRozMyuU16MxM7NCeT0aMzMrVL3r0UC6adPr0ZiZWZ/yBpp3AF8EvB6NmZkNSN5AczWwY0TcA/ypwPKYmdkwk3cwwKOkloyZmdmA5G3RzCFNnnkc8AjwXOXGiPhUswtmZmbDQ95A000aedYQSVsC04DNSSt2To6ImTXyTQKmkGYguIV0o+jcbNu2wFnAJsCTwBkRMa3RspmZWTHyTqq5X6MvJGl14BpSAPkhsDdwtaSNI2JRRb4tgKnATsB9wHeBC4FdJK1Dul50MHAp8Dbgd5IejojfNVpGMzNrvl4DTbZU8zGkNWdeJA1tPqtydoABmgB0R8T52fPpkg4HdgEuq8i3F3BVRMzKynE0MF/SeGBd4NcRMSPL+xdJtwDbkKbIMTOzlUxfLZopwEGkGzJfIgWdjYED63ytTYD7q9IiS6/O98flGSIWSOoCFBG/J7WEAMhaOO8Ffpq3EKVSiba8QyAqtLWVBr5Thfb2xvYfysp112gdjlSuv/q57urXzLrrK9BMAj4dEVcDSLoCuFbSFyJiWR2vNZpXTlezBFiznnySXkXqivtz9pjL2LGjKZVaf9J1do5p+WuubDo6Rg92EYY011/9XHf1a0bd9RVo1gXurnh+K7AqaYaA/9TxWkuANarS1gQWDTSfpI2Aa4GHgT0jojtvIRYsWDwoLZquruq3OXK0tZXo6BjNwoWL6e72IqwD5fqrn+uufpV112iw6SvQrELqMgMgIrolPQ+MqvO15pAu4lcSMKNGPi3PII0DOrN0JL0duB64GDhyIEEGoKenh2X1tMcatGyZT/Lu7h7XQwNcf/Vz3dWvGQE69wqbTXAzMErSIaRRZXuThi/fUJXvEuA2SdNJLarTgOuyazXjSUHmrIj4ZuuKbmZm9eov0Owt6dmK5+3AJEnzKzNFxAX9vVBEvCBpZ1KQORV4CJgYEYslTc3yTI6IeyQdAEwnddPdDpSHV+8PvBo4XtLxFYc/JyKO668MZmbWeqWentrNIkn/APK0mXoiYuMmlqlQ8+c/W1c7sL29xD5Tbqr7dacfs0Pd+w517e0lOjvH0NW1yN0XdXD91c91V7/KuuvsHNPQRepeWzQRsWEjBzYzM4P8k2qamZnVxYHGzMwK5UBjZmaFcqAxM7NCOdCYmVmhHGjMzKxQDjRmZlYoBxozMyuUA42ZmRXKgcbMzArlQGNmZoVyoDEzs0I50JiZWaEcaMzMrFCtXGHT6vTZ02+ue9+RvA6Oma0c3KIxM7NCOdCYmVmhHGjMzKxQDjRmZlYoBxozMyuUA42ZmRXKgcbMzArlQGNmZoVyoDEzs0I50JiZWaEcaMzMrFAONGZmVihPqtkijUyMaWY2lLlFY2ZmhXKgMTOzQjnQmJlZoRxozMysUA40ZmZWKAcaMzMrlAONmZkVyoHGzMwK5UBjZmaFcqAxM7NCOdCYmVmhHGjMzKxQLZ1UU9KWwDRgc+BBYHJEzKyRbxIwBRgP3ALsHxFzB3IMMzNbObQs0EhaHbiGFEB+COwNXC1p44hYVJFvC2AqsBNwH/Bd4EJgl7zHsOZpZNbp6cfs0MSSmNlQ1coWzQSgOyLOz55Pl3Q4sAtwWUW+vYCrImIWgKSjgfmSxgNvz3kMywzm8gSDFaQafc8OkGbN1cprNJsA91elRZbea76IWAB0ARrAMczMbCXRyhbNaGBJVdoSYM0B5Mt7jF6VSiXa6givbW2lge9kdRuqLbHB8pPj3j/YRVgplf9v/f87cM2su1YGmiXAGlVpawLV11b6ypf3GL0aN25M3bV2zVm71burmQ2ijo7Rg12EIasZddfKrrM5pO6vSuKVXWEr5JM0DujM0vMew8zMVhKtbNHcDIySdAhpVNnepOHLN1TluwS4TdJ04G7gNOC6iFggKe8xzMxsJdGyFk1EvADsDEwiXdw/BJgYEYslTZU0Nct3D3AAMB2YB6wH7NffMVr1PszMbGBKPT09g10GMzMbxjwFjZmZFcqBxszMCuVAY2ZmhXKgMTOzQrV09uahyjNG5yfpSOBU4MWK5J2Bv5FGEu4APA2cHBE/an0JV06S3gVcGRHrZc/XoZf6klQi1fHnSP/DPwW+HBHLBqPsK4Ma9bcVMAt4riLbqRFxqusvkbQtcBZpCq8ngTMiYloR554DTT88Y/SAbQkcGxFnViZKupw0g8N4YAvgOkmzR3rAzv5x9wO+DbxUsekH9F5fXwR2zdJ7gGuBI4AzWlj0lUIf9bcl6f67D9XYbcTXXxZMrgYOBi4F3gb8TtLDwGSafO6566x/y2edjoilETEdmEuaMdpeaUvgnsoESWOAjwAnRsTzEXEXMAP4zCCUb2VzLHAY6YsMkKu+9gbOjojHI+IJ0k3N+7a01CuPV9Rf5hXnYQXXH7wB+HVEzIiI7oj4C2ntr20o4NxzoOmfZ4zOSdKapCmBDpP0hKQ5kj4L/BewNCIeqcjuOkymk75N/qkirb/6qj4nA1D27X6kqVV/kALNeyQ9Kumfks6UNCrbNuLrLyLuiYi9y8+zFs57gRIFnHsONP1reMboEWQ8cAdwPvB64EBSl8aHWLGvHFyHAGTfDKvvmh5N3/UsYc34AAAFe0lEQVRVfU4uIf0vj2KE6aX+AOaTurzfDGxP6pk4Odvm+qsg6VWkuvozqVXT9HPP12j61/CM0SNFRDwKvK8i6XZJFwHbAatXZXcd9m4JfddX9Tm5JvBSRDzfgrINCRExseLpI5JOJV3EPgbX33KSNiJdZ3kY2BPYlALOPbdo+ucZo3OS9HZJx1Qlrw78E1hN0usrs+M67M2D9F1f1eeksjQjdQNlXWVrVSSvDpQ/DF1/pP9X0si8G4CPRMRzFHTuuUXTP88Ynd8i4ERJDwG/InVXfJLUyukATpN0AGmY+KfwgIqaIuJZSVfRe31dDByVzWa+FPgqcNGgFHbl9DSwO1DKvvi8ATgOuCDbPuLrT9J44HrgrIj4Zjm9qHPPLZp+eMbo/CLi78AngBOAZ4HzgP2yES0HAKsC/wZ+CRwVEbMGq6xDQF/1dR5wFXAX6ZvmnaRrYQZERDfwYeCtpPtD7gB+AZyTZXH9wf7Aq4HjJS2q+JlCAeeeZ282M7NCuUVjZmaFcqAxM7NCOdCYmVmhHGjMzKxQDjRmZlYoBxozMyuUb9i0EUfSP0g38ZX1kO77uQs4LCJaMmOBpB5g54i4PkfeHwP79JHlZOBW0lxVa4zE6VRs5eUWjY1URwPrZj/rk9bYWAe4SlKr/i/WJc08kcdhvFzej2VpG1aknQn8AVjXQcZWNm7R2Ej1TLaeRtnjkg4j3UX+FuDeogtQ9fr95X2aNLUKkrqy5Lk1gkruY5q1igON2cvKy0+/BCBpVdKMv58hTYN+B3Boea2OrAvuHNJcUJsDdwNfiIjZ2XaRpufYljSp4/3A4RFxa7Z9eddZdqyfZ8daCrxloNMcSdqeiq6z7Ph7Al8jrXFzO2nqkVOBjwL/HzgwIm7J9l8POBf4APAMaaqRr3glWWuUu87MWP4hOwWYDTyQJU8hrZv+UWBr4HHgFkmV06SfQpqscSvSyqvXS1ojWwjqGtK6KO8E3gH8i5cndqxlf2A3YI8mzqV3Omm53vdlZbiPtPLkO0jv9TxYviTyFcALwLtJ7/ltpIXFzBriFo2NVGdLOjP7vZ00IOBGYJeIWJYFk0OB90bEnwAkfZ605MHHSLPYAvwsIn6Qbf8c8B/S9Z7rgB8AF2TdXkg6F7hR0qoRsbRGmS7JJiBtpu9GxO+z178J2DgizsqeTwOuldROCkQCti2XTdK+QEjaICL+3eRy2QjiQGMj1RTgEtLCTUeR1ko/NiL+mW1/I6m77NasC6psDVZcj+P28i8R8bSkADaNiMslfR/4tKStsn3enmVtJ3WPVXukRlqjHqr4fUnVazxH6tVYFdgMWBt4KvX4rUCkmXzN6uJAYyPV/Ih4CEDSPsBNwK8lvTVrgZT/NyaQloeotLDi95eqtrUDyySNAWaS1ui5ktQttTppnZ7eVC+h2wzVAa27l3yrkFZZ3LnGtsebWiIbcXyNxka8bP2S/YHXkK5pQGoJvAS8JiIeyoLSY9n2LSp237L8i6QO0kX3e0kX1N8IbBcRp0fEdaRhyAClAt9OveYAGwBPV7zfVYGzSC0ds7q5RWMGRMQjkk4DTpJ0QUT8r6TzgO9JWkrqcvoaaXDAIRW7HiTpbtKF9Smkazi/JV1sXx3YQ9KdpMEEp2T7jKKY1ksjbiQFm0skfYUUDKcBL0aEWzTWELdozF52BvAo8P1sFNZXSF1ePyWN1NoI2Knqg3c6cCxpaPMo4AMRsTQiZgLHk4Y3zwaOAA4idWW9ozVvJ7+sVbcbaVjzbaTA8yBpSWSzhniFTbM6Zfe+nB4RUwe5KGYrNbdozMysUA40ZmZWKHedmZlZodyiMTOzQjnQmJlZoRxozMysUA40ZmZWKAcaMzMrlAONmZkV6v8AZQXGeCYF62EAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1183512b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(times, bins=20, normed=True)\n",
    "plt.xlabel('Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title('Distribution of Repair Times');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's say we want to estimate the population mean of the repair times. We first need to define the main statistic function needed to do this. By passing in the whole population, we can see that actual average repair time is about 8.4 hours."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def stat(sample, axis=None):\n",
    "    return np.mean(sample, axis=axis)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.406145520144333"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "theta = stat(times)\n",
    "theta"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we need to define a method that will return a list of indices so we can resample from the original sample without replacement."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def take_sample(n=10):\n",
    "    return np.random.choice(times, size=n, replace=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In real life, we won't be able to draw many samples from the population (we use bootstrap to be able to use just one sample). But for demonstration purposes, we have access to the entire population, so we will take 1000 samples of size 10 and plot the distribution of the sample means."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x118381978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples_from_pop = 1000\n",
    "\n",
    "pop_sampling_dist = np.array(\n",
    "    [stat(take_sample()) for _ in range(samples_from_pop)]\n",
    ")\n",
    "\n",
    "plt.hist(pop_sampling_dist, bins=30, normed=True);\n",
    "plt.xlabel('Average Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title(r'Distribution of Sample Means ($\\hat{\\theta}$)');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the center of this distribution is ~5, and that it is skewed right because of the skewed distribution of the original data. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparing Distributions of the Statistic\n",
    "\n",
    "Now we can look at how a single bootstrap distribution can stack up against a distribution sampled from the population. \n",
    "\n",
    "Generally, we are aiming to estimate $\\theta^*$, our population parameter (in this case, the average repair time of the population, which we found to be ~8.4). Each individual sample can be used to calculate an estimated statistic, $\\hat\\theta$ (in this case, the average repair time of a single sample). The plot above shows what we call an *empirical distribution* of $\\hat\\theta$, which is calculated of many estimated statistics from many samples from the population. For the bootstrap, however, we want the statistic of the resample of the original sample, which is called $\\tilde\\theta$. \n",
    "\n",
    "In order for the bootstrap to work, we want our original sample to look similar to the population, so that resamples also look similar to the population. If our original sample *does* look like the population, then the distribution of average repair times calculated from the resamples will look similar to the empirical distribution of samples directly from the population.\n",
    "\n",
    "Let's take a look at how an individual bootstrap distribution will look. We can define methods to take samples of size 10 without replacement and bootstrap it 1000 times to get our distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "bootstrap_reps = 1000\n",
    "\n",
    "def resample(sample, reps):\n",
    "    n = len(sample)\n",
    "    return np.random.choice(sample, size=reps * n).reshape((reps, n))\n",
    "\n",
    "def bootstrap_stats(sample, reps=bootstrap_reps, stat=stat):\n",
    "    resamples = resample(sample, reps)\n",
    "    return stat(resamples, axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a42ccc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "\n",
    "sample = take_sample()\n",
    "\n",
    "plt.hist(bootstrap_stats(sample), bins=30, normed=True)\n",
    "plt.xlabel('Average Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title(r'Distribution of Bootstrap Sample Means ($\\tilde{\\theta}$)');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, our distribution of $\\tilde\\theta$ doesn't look *quite* like the distribution of $\\hat\\theta$, likely because our original sample did not look like the population. As a result, our confidence intervals perform rather poorly. Below we can see a side-by-side comparison of the two distributions:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ba4ffd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 4))\n",
    "plt.subplot(121)\n",
    "plt.xlabel('Average Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title(r'Distribution of Sample Means ($\\hat{\\theta}$)')\n",
    "plt.hist(pop_sampling_dist, bins=30, range=(0, 40), normed=True)\n",
    "plt.ylim((0,0.2))\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.xlabel('Average Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title(r'Distribution of Bootstrap Sample Means ($\\tilde{\\theta}$)')\n",
    "plt.hist(bootstrap_stats(sample), bins=30, range=(0, 40), normed=True)\n",
    "plt.ylim((0,0.2))\n",
    "\n",
    "plt.tight_layout();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Studentized Bootstrap Procedure\n",
    "\n",
    "As we saw, the main issue with percentile bootstrap procedure is that it takes a larger sample size to really reach the desired 95% confidence. With the studentized bootstrap procedure, we can do a little more calculation to get better coverage at smaller sample sizes.\n",
    "\n",
    "The idea behind the studentized bootstrap procedure is to normalize the distribution of the test statistic $\\tilde\\theta$ to be centered at 0 and have a standard deviation of 1. This will correct for the spread difference and skew of the original distribution. In order to do all of this, we need to do some derivation first."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the percentile bootstrap procedure, we generate many values of $\\tilde\\theta$, and then we take the 2.5th and 97.5th percentiles for our confidence interval. For short, we refer to these percentiles as $q_{2.5}$ and $q_{97.5}$. Note that both of these values come from the bootstrap statistics.\n",
    "\n",
    "With this procedure, we hope that the probability that the actual population statistic lies between our confidence intervals is about 95%. In other words, we hope for the following equality:\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "0.95 &= {\\cal P}\\left(q_{2.5} \\leq \\theta^* \\leq q_{97.5}\\right)\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "We make two approximations during this procedure: since we assume our random sample looks like the population, we approximate $\\theta^*$ with $\\hat\\theta$; since we assume a random resample looks like the original sample, we approximate $\\hat\\theta$ with $\\tilde\\theta$. Since the second approximation relies on the first one, they both introduce error in the confidence interval generation, which creates the coverage error we saw in the plot."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We aim to reduce this error by normalizing our statistic. Instead of using our calculated value of $\\tilde\\theta$ directly, we use: \n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "\\frac\n",
    "    {\\tilde{\\theta} - {\\hat{\\theta}}}\n",
    "    {SE({\\tilde{\\theta}})}\n",
    "\\end{aligned}\n",
    "$$\n",
    "\n",
    "This will normalize the resample statistic by the sample statistic, and then divide by the standard deviation of the resample statistic (this standard deviation is also called the standard error, or SE).\n",
    "\n",
    "This whole normalized statistic is called the Student's t-statistic, so we call this bootstrap method the **studentized bootstrap** or the **bootstrap-t** method."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As usual, we compute this statistic for many resamples, and then take the 2.5th and 97.5th percentiles — $ q_{2.5} $ and $ q_{97.5} $. As such, we hope that the normalized population parameter lies between these percentiles:\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "0.95 &= {\\cal P}\\left(q_{2.5} \\leq \\frac{\\hat{\\theta} - \\theta^*} {SE({\\hat{\\theta}})} \\leq q_{97.5}\\right) \\\\\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now solve the inequality for $\\theta^*$:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{aligned}\n",
    "0.95 &= {\\cal P}\\left(q_{2.5} \\leq \\frac{\\hat{\\theta} - \\theta^*} {SE({\\hat{\\theta}})} \\leq q_{97.5}\\right) \\\\\n",
    " &= {\\cal P}\\left(q_{2.5}SE({\\hat{\\theta}}) \\leq {\\hat{\\theta} - \\theta^*} \\leq q_{97.5}SE({\\hat{\\theta}})\\right) \\\\\n",
    " &= {\\cal P}\\left(\\hat{\\theta} - q_{97.5}SE({\\hat{\\theta}}) \\leq {\\theta^*} \\leq \\hat{\\theta} - q_{2.5}SE({\\hat{\\theta}})\\right) \n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This means we can construct our confidence interval using just $\\hat\\theta$ (the test statistic on the original sample), $q_{2.5}$ and $q_{97.5}$ (the percentiles of the normalized statistic computed with the resamples), and $SE(\\hat\\theta)$ (the standard deviation of the sample test statistic). This last value is estimated by using the standard deviation of the resample test statistics."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Thus, to compute a studentized bootstrap CI, we perform the following procedure:\n",
    "\n",
    "1. Compute $ \\hat{\\theta} $, the test statistic on the sample.\n",
    "1. Bootstrap the sample a large number of times.\n",
    "1. For each bootstrap resample:\n",
    "    1. Compute $ \\tilde \\theta $, the test statistic on the resample.\n",
    "    1. Compute $ SE({\\tilde{\\theta}}) $.\n",
    "    1. Compute $ q =  \\frac{\\tilde{\\theta} - {\\hat{\\theta}}}{SE({\\tilde{\\theta}})} $.\n",
    "1. Estimate $ SE(\\hat \\theta) $ using the standard deviation of the $ \\tilde \\theta $ values.\n",
    "1. Calculate the confidence intervals thusly: $ \\left[ \\hat{\\theta} - q_{97.5}SE({\\hat{\\theta}}), \\hat{\\theta} - q_{2.5}SE({\\hat{\\theta}}) \\right]$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Computing the Standard Error of the Resample Statistic\n",
    "\n",
    "It is important to note that $SE(\\hat\\theta)$, the standard error of the resample test statistic, is not always easy to compute and is dependent on the test statistic. For the sample mean, $SE(\\tilde\\theta)=\\frac{\\tilde\\sigma}{\\sqrt{n}}$, the standard deviation of the resample values divided by the square root of the sample size. \n",
    "\n",
    "Also remember that we have to use the resample values to compute $ SE(\\tilde \\theta) $; we use the sample values to compute $ SE(\\hat \\theta) $."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If our test statistic, however, does not have an analytic expression (like the one we have for the sample mean), then we need to do a second-level bootstrap. For each resample, we bootstrap it again, and compute the test statistic on each second-level resample (the resampled resample), and compute the standard deviation using these second-level statistics. Typically, we do around 50 second-level resamples.\n",
    "\n",
    "This greatly increases computation time for the studentized bootstrap procedure. If we do 50 second-level resamples, the entire procedure will take 50 times as long as if we just had an analytic expression for $SE(\\tilde\\theta)$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparison of Studentized Bootstrap with Percentile Bootstrap\n",
    "\n",
    "To assess the tradeoffs of studentized and percentile bootstrap, let's compare the coverage of the two methods using the repair times dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11be3a470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(times, bins=20, normed=True);\n",
    "plt.xlabel('Repair Time')\n",
    "plt.ylabel('Proportion per Hour')\n",
    "plt.title('Distribution of Repair Times');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will take many samples from the population, compute a percentile confidence interval and a studentized confidence interval for each sample, and then compute the coverage for each. We will repeat this for varying sample sizes to see how the coverage of each method changes with sample size."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use `np.percentile` to compute the percentile confidence interval below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def percentile_ci(sample, reps=bootstrap_reps, stat=stat):\n",
    "    stats = bootstrap_stats(sample, reps, stat)\n",
    "    return np.percentile(stats, [2.5, 97.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 4.54, 29.56])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "sample = take_sample(n=10)\n",
    "percentile_ci(sample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To do the studentized bootstrap, we need a lot more code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def studentized_stats(sample, reps=bootstrap_reps, stat=stat):\n",
    "    '''\n",
    "    Computes studentized test statistics for the provided sample.\n",
    "    \n",
    "    Returns the studentized test statistics and the SD of the\n",
    "    resample test statistics.\n",
    "    '''\n",
    "    # Bootstrap the sample and compute \\tilde \\theta values\n",
    "    resamples = resample(sample, reps)\n",
    "    resample_stats = stat(resamples, axis=1)\n",
    "    resample_sd = np.std(resample_stats)\n",
    "    \n",
    "    # Compute SE of \\tilde \\theta.\n",
    "    # Since we're estimating the sample mean, we can use the formula.\n",
    "    # Without the formula, we would have to do a second level bootstrap here.\n",
    "    resample_std_errs = np.std(resamples, axis=1) / np.sqrt(len(sample))\n",
    "    \n",
    "    # Compute studentized test statistics (q values)\n",
    "    sample_stat = stat(sample)\n",
    "    t_statistics = (resample_stats - sample_stat) / resample_std_errs\n",
    "    return t_statistics, resample_sd\n",
    " \n",
    "def studentized_ci(sample, reps=bootstrap_reps, stat=stat):\n",
    "    '''\n",
    "    Computes 95% studentized bootstrap CI\n",
    "    '''\n",
    "    t_statistics, resample_sd = studentized_stats(sample, reps, stat)\n",
    "    lower, upper = np.percentile(t_statistics, [2.5, 97.5])\n",
    "    \n",
    "    sample_stat = stat(sample)\n",
    "    return (sample_stat - resample_sd * upper,\n",
    "            sample_stat - resample_sd * lower)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4.499166906400612, 59.03291210887363)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "sample = take_sample(n=10)\n",
    "studentized_ci(sample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that everything is written out, we can compare the coverages of the two methods as the sample size increases from 4 to 100."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def coverage(cis, parameter=theta):\n",
    "    return (\n",
    "        np.count_nonzero([lower < parameter < upper for lower, upper in cis])\n",
    "        / len(cis)\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def run_trials(sample_sizes):\n",
    "    np.random.seed(0)\n",
    "    percentile_coverages = []\n",
    "    studentized_coverages = []\n",
    "    \n",
    "    for n in sample_sizes:\n",
    "        samples = [take_sample(n) for _ in range(samples_from_pop)]\n",
    "        percentile_cis = [percentile_ci(sample) for sample in samples]\n",
    "        studentized_cis = [studentized_ci(sample) for sample in samples]\n",
    "        \n",
    "        percentile_coverages.append(coverage(percentile_cis))\n",
    "        studentized_coverages.append(coverage(studentized_cis))\n",
    "    return pd.DataFrame({\n",
    "        'percentile': percentile_coverages,\n",
    "        'studentized': studentized_coverages,\n",
    "    }, index=sample_sizes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1min 52s, sys: 1.08 s, total: 1min 53s\n",
      "Wall time: 1min 57s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "trials = run_trials(np.arange(4, 101, 2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a3d9f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "trials.plot()\n",
    "plt.axhline(0.95, c='red', linestyle='--', label='95% coverage')\n",
    "plt.legend()\n",
    "plt.xlabel('Sample Size')\n",
    "plt.ylabel('Coverage')\n",
    "plt.title('Coverage vs. Sample Size for Studentized and Percentile Bootstraps');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we can see, the studentized bootstrap has a much better coverage at smaller sample sizes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "The studentized bootstrap for the most part is better than the percentile bootstrap, especially if we only have a small sample to start with. We generally want to use this method when the sample size is small or when the original data is skewed. The main drawback is its computation time, which is further magnified if $SE(\\tilde\\theta)$ is not easy to compute."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": false,
   "sideBar": false,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": true,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
